The present invention relates to middleware environments, and more specifically, to providing efficient transaction level workload management across multi-tier heterogeneous middleware clusters.
Conventionally, large enterprise computing deployments include a heterogeneous middleware environment spanning across different platforms and infrastructure, also referred to as an n-tier application architecture. For example, application deployments may include middleware systems that are running on both distributed systems (e.g., the TXSeries from IBM) and mainframe systems (e.g., the Z System from IBM). Conventionally, the distributed systems and mainframe systems run on an isolated cluster environment that are managed independently (or unilaterally).
For example, the distributed system may include many applications that interface with a transaction server (e.g., the Customer Information Control System (CICS) Transaction Server) on the mainframe. In such a scenario, the application interactions across the two environments are tightly coupled. However, the workload management aspects of these environments are managed separately, and in an isolated manner.
In such scenarios, workload balancing across the different platform environments is conventionally performed by network dispatchers and load balancer appliances that work at a network connection level. In an online transaction processing (OLTP) environment, these solutions leave much to be desired. Generally, OLTP based middleware environments typically maintain persistent connections. Furthermore, multiple sessions are multiplexed on a single physical connection, so breaking that connection would abruptly terminate all sessions associated with that connection. Additionally, the cost of establishing a new connection is quite high in a distributed environment, as doing so introduces a significant drop in performance.
Hence, the existing solutions are disruptive as the connections are often broken and reconnected whenever there is a request to re-balance persistent connections based on current distribution recommendations, or to change the cluster based on a fail-over event. These shortcomings result in a significant drop in performance and outages for the business applications. Therefore, there is a need to intelligently route traffic between applications in a middleware environment based on the performance and other attributes of the middleware environment.